<html>
<head><meta charset="utf-8"><title>More guidance for an ambiguous query · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html">More guidance for an ambiguous query</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="196277828"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/196277828" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Adam Bratschi-Kaye (he) <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#196277828">(May 05 2020 at 08:03)</a>:</h4>
<p>When debugging <a href="https://github.com/rust-analyzer/rust-analyzer/issues/4132" title="https://github.com/rust-analyzer/rust-analyzer/issues/4132">an issue</a> in rust-analyzer I found chalk doesn't give any guidance when solving this query:</p>
<div class="codehilite"><pre><span></span><code><span class="k">struct</span> <span class="nc">A</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{}</span><span class="w"></span>
<span class="cp">#[non_enumerable]</span><span class="w"></span>
<span class="k">trait</span><span class="w"> </span><span class="n">Constraint</span><span class="w"> </span><span class="p">{}</span><span class="w"></span>
<span class="k">trait</span><span class="w"> </span><span class="n">MyTrait</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{}</span><span class="w"></span>
<span class="k">impl</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="w"> </span><span class="n">MyTrait</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">A</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="n">T</span>: <span class="nc">Constraint</span><span class="w"> </span><span class="p">{}</span><span class="w"></span>
<span class="o">?-</span><span class="w"> </span><span class="n">exists</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span><span class="n">U</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">A</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span>: <span class="nc">MyTrait</span><span class="o">&lt;</span><span class="n">U</span><span class="o">&gt;</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="n">Ambiguous</span><span class="p">;</span><span class="w"> </span><span class="n">no</span><span class="w"> </span><span class="n">inference</span><span class="w"> </span><span class="n">guidance</span><span class="w"></span>
</code></pre></div>


<p>I understand that the solution is ambiguous because <code>Constraint</code> is non-enumerable, but it seems like we should still get the guidance that <code>T=U</code>.</p>
<p>In the recursive solver I think the issue is in <a href="https://github.com/rust-lang/chalk/blob/e8b6a6a4ab5e325502bde31f1dc0be95dd640613/chalk-solve/src/recursive/fulfill.rs#L425" title="https://github.com/rust-lang/chalk/blob/e8b6a6a4ab5e325502bde31f1dc0be95dd640613/chalk-solve/src/recursive/fulfill.rs#L425"><code>Fulfill::solve</code></a>. If we aren't able to solve all the obligations, then we decide to provide guidance if the substitutions found so far aren't trivial (before canonicalizing). But it seems like in this situation the substitutions are non-trivial after canonicalizing, even though they were trivial before.</p>
<p>Does this reasoning seem correct? If so, could someone give me a tip on where to make a similar change in the SLG solver?.<br>
Here's my <a href="https://github.com/rust-lang/chalk/pull/433" title="https://github.com/rust-lang/chalk/pull/433">draft PR</a> with the fix for the recursive solver.</p>



<a name="198916853"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198916853" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198916853">(May 27 2020 at 16:27)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> when you get a chance, can you take a look at <a href="https://github.com/rust-lang/chalk/pull/433">https://github.com/rust-lang/chalk/pull/433</a></p>



<a name="198916889"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198916889" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198916889">(May 27 2020 at 16:27)</a>:</h4>
<p>Sigh, yes, sorry <span class="user-mention" data-user-id="262963">@Adam Bratschi-Kaye (he) (SP1'17)</span></p>



<a name="198917884"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198917884" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Adam Bratschi-Kaye (he) <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198917884">(May 27 2020 at 16:35)</a>:</h4>
<p>No problem <span class="user-mention" data-user-id="116009">@nikomatsakis</span>!</p>



<a name="198918225"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918225" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918225">(May 27 2020 at 16:38)</a>:</h4>
<p><span class="user-mention" data-user-id="232957">@Jack Huey</span> skimming the change -- didn't you say it had some effect on assoc type normalization?</p>



<a name="198918277"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918277" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918277">(May 27 2020 at 16:38)</a>:</h4>
<p>Mmm, I don't think so</p>



<a name="198918290"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918290" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918290">(May 27 2020 at 16:38)</a>:</h4>
<p>the only existing test I see that seemed to change output was <code>subgoal_cycle_uninhabited</code></p>



<a name="198918294"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918294" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918294">(May 27 2020 at 16:38)</a>:</h4>
<p>ok</p>



<a name="198918307"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918307" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918307">(May 27 2020 at 16:38)</a>:</h4>
<p>perhaps I misunderstood</p>



<a name="198918312"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918312" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918312">(May 27 2020 at 16:38)</a>:</h4>
<p>it affects how we deal with ambiguity</p>



<a name="198918320"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918320" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918320">(May 27 2020 at 16:38)</a>:</h4>
<p>this is good because I didn't quite understand how it would help :)</p>



<a name="198918396"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918396" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918396">(May 27 2020 at 16:39)</a>:</h4>
<p>right, so the new idea is to </p>
<ul>
<li>first pursue "non-ambiguous" results (where ambiguous means, afaict, that we had a <code>CannotProve</code> somewhere...)</li>
</ul>



<a name="198918404"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918404" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918404">(May 27 2020 at 16:39)</a>:</h4>
<ul>
<li>or a negative cycle but I don't think that arises right now?</li>
</ul>



<a name="198918453"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918453" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918453">(May 27 2020 at 16:40)</a>:</h4>
<p>I guess truncation too</p>



<a name="198918468"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918468" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918468">(May 27 2020 at 16:40)</a>:</h4>
<p>anyway we effectively defer "ambig" strands until we've worked out the rest</p>



<a name="198918495"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918495" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918495">(May 27 2020 at 16:40)</a>:</h4>
<p>I'm not quite sure how floundering fits into this yet</p>



<a name="198918603"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918603" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918603">(May 27 2020 at 16:41)</a>:</h4>
<p>Negative cycles IIRC always fail-fast. They aren't ever ambiguous</p>



<a name="198918681"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918681" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918681">(May 27 2020 at 16:42)</a>:</h4>
<p>comments suggest otherwise</p>



<a name="198918685"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918685" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918685">(May 27 2020 at 16:42)</a>:</h4>
<p>seems wrong-ish</p>



<a name="198918689"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918689" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918689">(May 27 2020 at 16:42)</a>:</h4>
<p>Here, we essentially define floundering as ambiguous</p>



<a name="198918697"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918697" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918697">(May 27 2020 at 16:42)</a>:</h4>
<p>unless it's a panic or something</p>



<a name="198918713"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918713" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918713">(May 27 2020 at 16:42)</a>:</h4>
<p>or propagating some kind of special result code I mean</p>



<a name="198918714"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918714" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918714">(May 27 2020 at 16:42)</a>:</h4>
<p>what comments?</p>



<a name="198918735"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918735" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918735">(May 27 2020 at 16:42)</a>:</h4>
<p><a href="http://rust-lang.github.io/chalk/chalk_engine/struct.ExClause.html#structfield.ambiguous">http://rust-lang.github.io/chalk/chalk_engine/struct.ExClause.html#structfield.ambiguous</a></p>



<a name="198918750"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918750" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918750">(May 27 2020 at 16:43)</a>:</h4>
<p>or maybe I misunderstood it actually</p>



<a name="198918755"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918755" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918755">(May 27 2020 at 16:43)</a>:</h4>
<blockquote>
<p>True if any subgoals were depended upon negatively and were not fully evaluated, or if we encountered a CannotProve goal. (In the full SLG algorithm, we would use delayed literals here, but we don't bother, as we don't need that support.)</p>
</blockquote>



<a name="198918764"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918764" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918764">(May 27 2020 at 16:43)</a>:</h4>
<p>"were not fully evaluated"</p>



<a name="198918776"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918776" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918776">(May 27 2020 at 16:43)</a>:</h4>
<p><a href="https://github.com/rust-lang/chalk/blob/22978b413ca19e19621fcbf4f4f233c40249a49b/chalk-engine/src/logic.rs#L1163">https://github.com/rust-lang/chalk/blob/22978b413ca19e19621fcbf4f4f233c40249a49b/chalk-engine/src/logic.rs#L1163</a></p>



<a name="198918778"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918778" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918778">(May 27 2020 at 16:43)</a>:</h4>
<p>maybe that just means they contain free inf variables or soething like that</p>



<a name="198918798"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918798" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918798">(May 27 2020 at 16:43)</a>:</h4>
<p>yeah ok propagating a <code>NegativeCycle</code> out seems fine</p>



<a name="198918915"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918915" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918915">(May 27 2020 at 16:44)</a>:</h4>
<p>but ok floundering is a cause for ambiguity</p>



<a name="198918922"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918922" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918922">(May 27 2020 at 16:44)</a>:</h4>
<p>which makes sense</p>



<a name="198918941"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198918941" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198918941">(May 27 2020 at 16:44)</a>:</h4>
<p>Yeah, that comment should maybe not include the "depended on negatively" part. Really, it's true if <em>any</em> subgoals were not fully evaluated</p>



<a name="198919447"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198919447" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198919447">(May 27 2020 at 16:48)</a>:</h4>
<p>OK, so, I've skimmed the PR and it all makes sense to me</p>



<a name="198919466"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198919466" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198919466">(May 27 2020 at 16:48)</a>:</h4>
<p>but I don't <em>quite</em> grok the motivation for the complete/answer phase split yet</p>



<a name="198919546"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198919546" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198919546">(May 27 2020 at 16:49)</a>:</h4>
<p>Okay, let me elaborate</p>



<a name="198919750"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198919750" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198919750">(May 27 2020 at 16:50)</a>:</h4>
<p>The reasoning for this initially stemmed from the fact that we now treat floundered subgoals as ambiguous</p>



<a name="198919777"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198919777" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198919777">(May 27 2020 at 16:50)</a>:</h4>
<p>i.e. they actually give answers now</p>



<a name="198919809"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198919809" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198919809">(May 27 2020 at 16:50)</a>:</h4>
<p>OK</p>



<a name="198919836"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198919836" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198919836">(May 27 2020 at 16:51)</a>:</h4>
<p>This is a problem when we rely on floundering to <em>not</em> give answers (yet)</p>



<a name="198919908"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198919908" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198919908">(May 27 2020 at 16:51)</a>:</h4>
<p>There's one really easy test to mentally think about this</p>



<a name="198919914"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198919914" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198919914">(May 27 2020 at 16:51)</a>:</h4>
<p>let me get it</p>



<a name="198919991"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198919991" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198919991">(May 27 2020 at 16:52)</a>:</h4>
<p><code>non_enumerable_traits_reorder</code></p>



<a name="198920017"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198920017" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198920017">(May 27 2020 at 16:52)</a>:</h4>
<p>Basically, we end up with a table of two goals:</p>



<a name="198920027"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198920027" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198920027">(May 27 2020 at 16:52)</a>:</h4>
<div class="codehilite"><pre><span></span><code>[
  forall&lt;&gt; {  ?0: Enumerable },
  forall&lt;&gt; {  ?0: NonEnumerable },
]
</code></pre></div>



<a name="198920052"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198920052" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198920052">(May 27 2020 at 16:52)</a>:</h4>
<p>so I sort of recall something about how floundering would kill off the other strands</p>



<a name="198920073"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198920073" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198920073">(May 27 2020 at 16:53)</a>:</h4>
<p>and I can imagine that there might be useful hints to be had</p>



<a name="198920099"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198920099" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198920099">(May 27 2020 at 16:53)</a>:</h4>
<p>if you pursue them a bit more</p>



<a name="198920140"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198920140" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198920140">(May 27 2020 at 16:53)</a>:</h4>
<p>Well, a <em>table</em> floundering does kill all Strands</p>



<a name="198920165"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198920165" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198920165">(May 27 2020 at 16:53)</a>:</h4>
<p>That doesn't change here</p>



<a name="198920312"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198920312" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198920312">(May 27 2020 at 16:55)</a>:</h4>
<p>But, with the example above</p>



<a name="198920325"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198920325" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198920325">(May 27 2020 at 16:55)</a>:</h4>
<p>We pursue the second subgoal first</p>



<a name="198920351"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198920351" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198920351">(May 27 2020 at 16:55)</a>:</h4>
<p>And before it would flounder</p>



<a name="198920372"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198920372" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198920372">(May 27 2020 at 16:55)</a>:</h4>
<p>But now it gives back an ambiguous answer</p>



<a name="198920520"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198920520" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198920520">(May 27 2020 at 16:56)</a>:</h4>
<p>When, in reality it's <em>not</em> ambiguous, as long as we pursue the other subgoal first</p>



<a name="198921874"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198921874" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198921874">(May 27 2020 at 17:05)</a>:</h4>
<p>(going back to when a table floundered, that now only happens if we can't create any program clauses or when the answer needs truncation)</p>



<a name="198951088"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198951088" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198951088">(May 27 2020 at 20:47)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> Thing you'll have any more time today to finish this discussion?</p>



<a name="198951147"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198951147" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198951147">(May 27 2020 at 20:48)</a>:</h4>
<p>whoops, sorry, yes I'm around now-ish actually</p>



<a name="198951195"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198951195" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198951195">(May 27 2020 at 20:48)</a>:</h4>
<p>No worries :)</p>



<a name="198951207"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198951207" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198951207">(May 27 2020 at 20:48)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query/near/198920140">said</a>:</p>
<blockquote>
<p>Well, a <em>table</em> floundering does kill all Strands</p>
</blockquote>
<p>yeah so this is true, but it happens <em>later</em> is the point</p>



<a name="198951234"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198951234" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198951234">(May 27 2020 at 20:49)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query/near/198920520">said</a>:</p>
<blockquote>
<p>When, in reality it's <em>not</em> ambiguous, as long as we pursue the other subgoal first</p>
</blockquote>
<p>I'm struggling a bit with this I guess</p>



<a name="198951258"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198951258" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198951258">(May 27 2020 at 20:49)</a>:</h4>
<p>Well, now a table floundering doesn't happen at all in <em>most</em> cases</p>



<a name="198951259"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198951259" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198951259">(May 27 2020 at 20:49)</a>:</h4>
<p>that is, I thought that the floundering mechanism was already supposed to handle the case of</p>



<a name="198951278"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198951278" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198951278">(May 27 2020 at 20:49)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query/near/198920027">said</a>:</p>
<blockquote>
<div class="codehilite"><pre><span></span><code>[
  forall&lt;&gt; {  ?0: Enumerable },
  forall&lt;&gt; {  ?0: NonEnumerable },
]
</code></pre></div>


</blockquote>



<a name="198951284"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198951284" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198951284">(May 27 2020 at 20:49)</a>:</h4>
<p>yes, indeed it did</p>



<a name="198951317"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198951317" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198951317">(May 27 2020 at 20:49)</a>:</h4>
<p>so maybe i'm missing a bit the motivation</p>



<a name="198951392"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198951392" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198951392">(May 27 2020 at 20:50)</a>:</h4>
<p>this seems sort of "similar but different" to the floundering mechanism, right?</p>



<a name="198951408"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198951408" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198951408">(May 27 2020 at 20:50)</a>:</h4>
<p>i.e., the floundering mechanism said:</p>



<a name="198951422"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198951422" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198951422">(May 27 2020 at 20:50)</a>:</h4>
<p>if a single strand has some subgoals that flounder, we move them to the end</p>



<a name="198951436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198951436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198951436">(May 27 2020 at 20:50)</a>:</h4>
<p>but this is more moving <em>strands</em> to the end?</p>



<a name="198951452"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198951452" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198951452">(May 27 2020 at 20:50)</a>:</h4>
<p>that is, strands that would produce an ambiguous answer?</p>



<a name="198951509"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198951509" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198951509">(May 27 2020 at 20:51)</a>:</h4>
<p>well, now both</p>



<a name="198951627"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198951627" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198951627">(May 27 2020 at 20:52)</a>:</h4>
<p>both how?</p>



<a name="198951640"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198951640" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198951640">(May 27 2020 at 20:52)</a>:</h4>
<p>For <em>subgoals</em>:</p>



<a name="198951658"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198951658" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198951658">(May 27 2020 at 20:52)</a>:</h4>
<p>We always flounder if the answer is ambiguous</p>



<a name="198951675"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198951675" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198951675">(May 27 2020 at 20:52)</a>:</h4>
<p>(but we can "recover" that answer later)</p>



<a name="198951708"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198951708" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198951708">(May 27 2020 at 20:53)</a>:</h4>
<p>But for <em>strands</em></p>



<a name="198951807"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198951807" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198951807">(May 27 2020 at 20:54)</a>:</h4>
<p>we don't want any ambiguous answers on the table (until we're out of non-ambiguous answers), so we don't follow them until we have to</p>



<a name="198951968"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198951968" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198951968">(May 27 2020 at 20:54)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query/near/198951658">said</a>:</p>
<blockquote>
<p>We always flounder if the answer is ambiguous</p>
</blockquote>
<p>here <a href="https://github.com/rust-lang/chalk/pull/433/files#diff-0ad662113ab25dc8768fb71878e783fdR560">https://github.com/rust-lang/chalk/pull/433/files#diff-0ad662113ab25dc8768fb71878e783fdR560</a></p>



<a name="198952489"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198952489" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198952489">(May 27 2020 at 20:58)</a>:</h4>
<p>so how does this wind up improving precision?</p>



<a name="198952493"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198952493" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198952493">(May 27 2020 at 20:58)</a>:</h4>
<p>something I was worried about is something like</p>



<a name="198952539"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198952539" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198952539">(May 27 2020 at 20:59)</a>:</h4>
<p>the strands we defer until later are still going to flounder, same as they ever were</p>



<a name="198952570"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198952570" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198952570">(May 27 2020 at 20:59)</a>:</h4>
<p>or course, we may now get more answers than we did before</p>



<a name="198952671"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198952671" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198952671">(May 27 2020 at 21:00)</a>:</h4>
<p>Well, the strands never flounder, they're just ambiguous</p>



<a name="198952737"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198952737" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198952737">(May 27 2020 at 21:00)</a>:</h4>
<p>The point though, is that maybe answers from non-ambiguous strands give us what we want</p>



<a name="198952764"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198952764" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198952764">(May 27 2020 at 21:01)</a>:</h4>
<p>why wouldn't we have gotten those answers before?</p>



<a name="198952782"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198952782" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198952782">(May 27 2020 at 21:01)</a>:</h4>
<p>because we would have cut off the strands?</p>



<a name="198952799"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198952799" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198952799">(May 27 2020 at 21:01)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query/near/198952671">said</a>:</p>
<blockquote>
<p>Well, the strands never flounder, they're just ambiguous</p>
</blockquote>
<p>I don't really understand this :)</p>



<a name="198952824"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198952824" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198952824">(May 27 2020 at 21:01)</a>:</h4>
<p>I thought we said that there was some logic that caused a table to be considered floundered and remove other strands</p>



<a name="198952831"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198952831" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198952831">(May 27 2020 at 21:01)</a>:</h4>
<p>there is</p>



<a name="198952907"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198952907" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198952907">(May 27 2020 at 21:01)</a>:</h4>
<p>I guess it's a bit confusing, because there are three different things that we check for ambiguity</p>



<a name="198952930"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198952930" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198952930">(May 27 2020 at 21:02)</a>:</h4>
<p>tables, strands, and subgoals</p>



<a name="198953016"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953016" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953016">(May 27 2020 at 21:02)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query/near/198952764">said</a>:</p>
<blockquote>
<p>why wouldn't we have gotten those answers before?</p>
</blockquote>
<p>So, if a strand is ambiguous, we <em>will</em> get those answers, eventually</p>



<a name="198953021"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953021" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953021">(May 27 2020 at 21:02)</a>:</h4>
<p>and did before</p>



<a name="198953041"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953041" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953041">(May 27 2020 at 21:02)</a>:</h4>
<p>OK, but now we get them sooner</p>



<a name="198953047"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953047" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953047">(May 27 2020 at 21:02)</a>:</h4>
<p>that seems clear</p>



<a name="198953078"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953078" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953078">(May 27 2020 at 21:03)</a>:</h4>
<p>I guess one of the things we might get is a "identity subst"</p>



<a name="198953100"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953100" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953100">(May 27 2020 at 21:03)</a>:</h4>
<p>well, now we answers that are ambiguous but wouldn't have gotten before because a subgoal floundered</p>



<a name="198953139"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953139" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953139">(May 27 2020 at 21:04)</a>:</h4>
<p>that's the part I'm still .. hmm wait</p>



<a name="198953204"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953204" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953204">(May 27 2020 at 21:04)</a>:</h4>
<p>first off, what do you mean by "subgoal floundered :)</p>



<a name="198953216"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953216" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953216">(May 27 2020 at 21:04)</a>:</h4>
<p>do you mean "got back an ambig result"</p>



<a name="198953288"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953288" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953288">(May 27 2020 at 21:05)</a>:</h4>
<p>no, I mean that the table the followed for the subgoal floundered</p>



<a name="198953306"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953306" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953306">(May 27 2020 at 21:05)</a>:</h4>
<p>and so that subgoal will <em>never</em> give an answer</p>



<a name="198953310"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953310" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953310">(May 27 2020 at 21:05)</a>:</h4>
<p>in other words, is the change that:</p>
<ul>
<li>we were checking for answer N from some goal G</li>
<li>before, answer N was ambig, and we stopped looking for more answers?</li>
</ul>



<a name="198953346"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953346" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953346">(May 27 2020 at 21:05)</a>:</h4>
<p>it seems like the idea of tables floundering is sort of not a great fit for this change you're pursuing</p>



<a name="198953449"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953449" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953449">(May 27 2020 at 21:06)</a>:</h4>
<p>vs producing an ambig answer</p>



<a name="198953459"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953459" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953459">(May 27 2020 at 21:06)</a>:</h4>
<p>but ok I guess the idea is that</p>



<a name="198953460"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953460" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953460">(May 27 2020 at 21:06)</a>:</h4>
<p>well, again, now tables don't really flounder anymore</p>



<a name="198953472"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953472" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953472">(May 27 2020 at 21:06)</a>:</h4>
<p>other than the two instances I listed above</p>



<a name="198953475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953475">(May 27 2020 at 21:06)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query/near/198953288">said</a>:</p>
<blockquote>
<p>no, I mean that the table the followed for the subgoal floundered</p>
</blockquote>
<p>? :)</p>



<a name="198953488"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953488" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953488">(May 27 2020 at 21:06)</a>:</h4>
<p>I guess you meant "before this PR..."</p>



<a name="198953493"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953493" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953493">(May 27 2020 at 21:07)</a>:</h4>
<p>yes</p>



<a name="198953523"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953523" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953523">(May 27 2020 at 21:07)</a>:</h4>
<p>Sorry, I feel like I'm doing a poor job explaining</p>



<a name="198953538"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953538" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953538">(May 27 2020 at 21:07)</a>:</h4>
<p>ok, so, before we would have asked for answer N from subgoal G, but that table might've floundered</p>



<a name="198953554"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953554" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953554">(May 27 2020 at 21:07)</a>:</h4>
<p>now, we will reorder things so that we prefer better answers, so answerN might be defined...</p>



<a name="198953566"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953566" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953566">(May 27 2020 at 21:07)</a>:</h4>
<p>yes exactly</p>



<a name="198953582"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953582" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953582">(May 27 2020 at 21:07)</a>:</h4>
<p>...but we would eventually request answer N+m...which would then be ambiguous</p>



<a name="198953625"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953625" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953625">(May 27 2020 at 21:08)</a>:</h4>
<p>or at least we <em>might</em></p>



<a name="198953634"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953634" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953634">(May 27 2020 at 21:08)</a>:</h4>
<p>right</p>



<a name="198953654"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953654" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953654">(May 27 2020 at 21:08)</a>:</h4>
<p>and is the gain from those cases where we <em>don't</em></p>



<a name="198953683"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953683" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953683">(May 27 2020 at 21:08)</a>:</h4>
<p>or also in the cases where we do, because we have made ambiguity less 'infectious' or something</p>



<a name="198953701"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953701" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953701">(May 27 2020 at 21:08)</a>:</h4>
<p>hmm</p>



<a name="198953712"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953712" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953712">(May 27 2020 at 21:08)</a>:</h4>
<p>let me parse that</p>



<a name="198953772"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953772" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953772">(May 27 2020 at 21:09)</a>:</h4>
<p>I'm unsure exactly how to answer that</p>



<a name="198953934"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953934" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953934">(May 27 2020 at 21:11)</a>:</h4>
<p>so you said</p>



<a name="198953941"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953941" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953941">(May 27 2020 at 21:11)</a>:</h4>
<p>"Tables don't flounder anymore"</p>



<a name="198953949"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953949" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953949">(May 27 2020 at 21:11)</a>:</h4>
<p>I don't 100% remember how things worked before</p>



<a name="198953950"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953950" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953950">(May 27 2020 at 21:11)</a>:</h4>
<p>(usually)</p>



<a name="198953962"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953962" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953962">(May 27 2020 at 21:11)</a>:</h4>
<p>I don't however see why that would be the case yet</p>



<a name="198953972"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953972" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953972">(May 27 2020 at 21:11)</a>:</h4>
<p>unless it's just that we don't "happen" to pull on as many strands as before</p>



<a name="198953984"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198953984" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198953984">(May 27 2020 at 21:11)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query/near/198953654">said</a>:</p>
<blockquote>
<p>and is the gain from those cases where we <em>don't</em></p>
</blockquote>
<p>i.e., this</p>



<a name="198954052"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198954052" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198954052">(May 27 2020 at 21:12)</a>:</h4>
<p>so i'm wondering if that's all it is, or if there is some other change such that -- even though we <em>do</em> pull the strand -- it doesn't cause the same effect because of the answers we found earlier or something</p>



<a name="198954150"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198954150" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198954150">(May 27 2020 at 21:13)</a>:</h4>
<p>I see, so you're asking if, because we wait to follow ambiguous strands, we pull on fewer strands?</p>



<a name="198954321"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198954321" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198954321">(May 27 2020 at 21:14)</a>:</h4>
<p>I'm not entirely sure</p>



<a name="198954352"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198954352" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198954352">(May 27 2020 at 21:14)</a>:</h4>
<p>Back to tables floudering though, there is one case that we flounder tables on master that isn't the case in the PR: <a href="https://github.com/rust-lang/chalk/blob/master/chalk-engine/src/logic.rs#L1008">https://github.com/rust-lang/chalk/blob/master/chalk-engine/src/logic.rs#L1008</a></p>



<a name="198954368"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198954368" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198954368">(May 27 2020 at 21:14)</a>:</h4>
<p>When all subgoals flounder</p>



<a name="198954445"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198954445" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198954445">(May 27 2020 at 21:15)</a>:</h4>
<p>going back to the testcase above:</p>



<a name="198954460"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198954460" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198954460">(May 27 2020 at 21:15)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query/near/198951278">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query/near/198920027">said</a>:</p>
<blockquote>
<div class="codehilite"><pre><span></span><code>[
  forall&lt;&gt; {  ?0: Enumerable },
  forall&lt;&gt; {  ?0: NonEnumerable },
]
</code></pre></div>


</blockquote>
</blockquote>
<p>this one</p>



<a name="198954535"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198954535" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198954535">(May 27 2020 at 21:16)</a>:</h4>
<p>it's a little bit more nuanced</p>



<a name="198954555"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198954555" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198954555">(May 27 2020 at 21:16)</a>:</h4>
<p>since <code>forall&lt;&gt; {  ?0: NonEnumerable }</code> doesn't flounder directly</p>



<a name="198954590"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198954590" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198954590">(May 27 2020 at 21:16)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query/near/198954368">said</a>:</p>
<blockquote>
<p>When all subgoals flounder</p>
</blockquote>
<p>in the PR, what do we do?</p>



<a name="198954611"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198954611" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198954611">(May 27 2020 at 21:17)</a>:</h4>
<p>We actually generate an intermediate table where there is one subgoal <code>forall&lt;&gt; ^1.0: NonEnumerable</code></p>



<a name="198954642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198954642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198954642">(May 27 2020 at 21:17)</a>:</h4>
<p>In the PR, we just generate an ambiguous answer</p>



<a name="198955623"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198955623" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198955623">(May 27 2020 at 21:26)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query/near/198954642">said</a>:</p>
<blockquote>
<p>In the PR, we just generate an ambiguous answer</p>
</blockquote>
<p>oK, this is probably the change I was looking for</p>



<a name="198955653"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198955653" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198955653">(May 27 2020 at 21:26)</a>:</h4>
<p>ok well I don't see any problem with the design right now</p>



<a name="198955657"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198955657" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198955657">(May 27 2020 at 21:26)</a>:</h4>
<p>and I think I grok it :)</p>



<a name="198955661"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198955661" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198955661">(May 27 2020 at 21:26)</a>:</h4>
<p>I'd be happy to merge</p>



<a name="198955667"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198955667" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198955667">(May 27 2020 at 21:26)</a>:</h4>
<p>Cool</p>



<a name="198956543"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198956543" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198956543">(May 27 2020 at 21:34)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> are you merging or am I</p>



<a name="198956646"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198956646" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198956646">(May 27 2020 at 21:35)</a>:</h4>
<p>rI can</p>



<a name="198958252"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198958252" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198958252">(May 27 2020 at 21:52)</a>:</h4>
<p><span class="user-mention" data-user-id="232957">@Jack Huey</span> the link check looks unhappy?</p>



<a name="198958322"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198958322" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198958322">(May 27 2020 at 21:53)</a>:</h4>
<p>Indeed. Fallout from chalk-engine/chalk-ir changes</p>



<a name="198958338"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198958338" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198958338">(May 27 2020 at 21:53)</a>:</h4>
<p>I'm going to fix it in a separate PR</p>



<a name="198958343"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198958343" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198958343">(May 27 2020 at 21:54)</a>:</h4>
<p>with some updates to the book</p>



<a name="198959241"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/More%20guidance%20for%20an%20ambiguous%20query/near/198959241" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/More.20guidance.20for.20an.20ambiguous.20query.html#198959241">(May 27 2020 at 22:02)</a>:</h4>
<p>OK, merged</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>